package com.ryan.demo.xstream.mas.model.info;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * @Project mas
 * @Description 商户信息
 * @Company 99bill
 * @Create 2012-1-29
 * @author frank.wu
 */
public class MerInfo  extends AbstractInfo {

	/**
	 * sid
	 */
	private static final long serialVersionUID = 7082579283189038106L;
	
	/**
	 * 地区/省份代码
	 */
	private String provinceCode;
		
	/**
	 * 商户编号(父商户编号,集团关系)
	 */
	private String parentMerchantId;
	
	/**
	 * 商户CID
	 */
	private String cid;
	
	/**
	 * 商户类型, 0:普通商户类型, 1:交易商户类型, 2:结算商户类型
	 */
	private String merchantType;
	
	/**
	 * 商户中文全名称
	 */
	private String fullNameCN;
	
	/**
	 * 商户中文名称
	 */
	private String nameCN;
	
	/**
	 * 商户分类编号
	 */
	private String mcc;
	
	/**
	 * 路由MCC
	 */
	private String routerMCC;
	
	/**
	 * 商户等级
	 */
	private String merchantLevel;
	
	/**
	 * 退货金额单笔限额
	 */
	private String refundAmtLimit;
	
	/**
	 * 退货日限额
	 */
	private String refundDailyQuota;
	
	/**
	 * 储值卡受理标志
	 */
	private String svcAccept;
	
	/**
	 * 销售金额日限额
	 */
	private String salesDailyQuota;
	
	/**
	 * 外卡销售金额日限额
	 */
	private String foreignCardSalesDailyQuota;
	
	/**
	 * 最大单笔交易金额
	 */
	private String maxTxnAmt;
	
	/**
	 * 最小单笔交易金额
	 */
	private String minTxnAmt;
	
	/**
	 * 是否需要发票, 0:否, 1:是
	 */
	private String needInvoice;
	
	/**
	 * 是否需要复核, 0:否, 1:是
	 */
	private String checkRefund;
	
	/**
	 * 退货是否需要快钱盾, 0:否, 1:是
	 */
	private String needToken;
	
	/**
	 * 接受通知Email地址
	 */
	private String emailAddress;
	
	/**
	 * 扩展能力位图-快速退货手续费返还
	 */
	private String attr51;
	
	/**
	 * 扩展能力位图-MRS手动预授权设置
	 */
	private String attr52;
	
	/**
	 * 扩展能力位图-自动发对账单
	 */
	private String attr54;
	
	/**
	 * 扩展能力位图-按照结算商户进行交易限额
	 */
	private String attr56;
	
	/**
	 * 扩展能力位图-节假日合并入账
	 */
	private String attr58;
	
	/**
	 * 扩展能力位图-仅支持专线交易
	 */
	private String attr59;
	
	/**
	 * 扩展能力位图-商户定制借记卡CNP
	 */
	private String attr510;
	
	/**
	 * 扩展能力位图-风控拦截外卡交易后通知商户
	 */
	private String attr512;
	
	/**
	 * 扩展能力位图-优先使用父商户交易通知配置
	 */
	private String attr513;
	
	/**
	 * 快速退货是否需要审核
	 */
	private String attr514;
	
	/**
	 * 扩展能力位图-是否允许PCI存储 
	 */
	private String attr515;
	
	/**
	 * 预留字段7 是否可以跨终端退货, 0:否, 1:是
	 */
	private String attr7;
	
	/**
	 * 商户自定义汇率
	 */
	private String merchantExchangeRates;
	
	/**
	 * 清算中心
	 */	
	@XStreamAlias("clearingHouses")
	private String clearingHouses;
	
	/**
	 * 结算商户编号集
	 */
	@XStreamAlias("settleMerchantIds")
	private String settleMerchantIds;
	
	/**
	 * 受理卡类型集
	 */
	@XStreamAlias("acceptCardOrgs")
	private String acceptCardOrgs;
	
	/**
	 * 订单允许重复支付
	 */
	private String uniqueExternalTraceNo;
	
	/**
	 * 移动网关最大单笔交易额
	 */
	private String mobileProxyMaxTxnAmt;
	

	/**
	 * @return the parentMerchantId
	 */
	public String getParentMerchantId() {
		return parentMerchantId;
	}

	/**
	 * @param parentMerchantId the parentMerchantId to set
	 */
	public void setParentMerchantId(String parentMerchantId) {
		this.parentMerchantId = parentMerchantId;
	}

	/**
	 * @return the cid
	 */
	public String getCid() {
		return cid;
	}

	/**
	 * @param cid the cid to set
	 */
	public void setCid(String cid) {
		this.cid = cid;
	}

	/**
	 * @return the merchantType
	 */
	public String getMerchantType() {
		return merchantType;
	}

	/**
	 * @param merchantType the merchantType to set
	 */
	public void setMerchantType(String merchantType) {
		this.merchantType = merchantType;
	}

	/**
	 * @return the fullNameCN
	 */
	public String getFullNameCN() {
		return fullNameCN;
	}

	/**
	 * @param fullNameCN the fullNameCN to set
	 */
	public void setFullNameCN(String fullNameCN) {
		this.fullNameCN = fullNameCN;
	}

	/**
	 * @return the nameCN
	 */
	public String getNameCN() {
		return nameCN;
	}

	/**
	 * @param nameCN the nameCN to set
	 */
	public void setNameCN(String nameCN) {
		this.nameCN = nameCN;
	}

	/**
	 * @return the mcc
	 */
	public String getMcc() {
		return mcc;
	}

	/**
	 * @param mcc the mcc to set
	 */
	public void setMcc(String mcc) {
		this.mcc = mcc;
	}

	/**
	 * @return the routerMCC
	 */
	public String getRouterMCC() {
		return routerMCC;
	}

	/**
	 * @param routerMCC the routerMCC to set
	 */
	public void setRouterMCC(String routerMCC) {
		this.routerMCC = routerMCC;
	}

	/**
	 * @return the merchantLevel
	 */
	public String getMerchantLevel() {
		return merchantLevel;
	}

	/**
	 * @param merchantLevel the merchantLevel to set
	 */
	public void setMerchantLevel(String merchantLevel) {
		this.merchantLevel = merchantLevel;
	}

	/**
	 * @return the refundAmtLimit
	 */
	public String getRefundAmtLimit() {
		return refundAmtLimit;
	}

	/**
	 * @param refundAmtLimit the refundAmtLimit to set
	 */
	public void setRefundAmtLimit(String refundAmtLimit) {
		this.refundAmtLimit = refundAmtLimit;
	}

	/**
	 * @return the refundDailyQuota
	 */
	public String getRefundDailyQuota() {
		return refundDailyQuota;
	}

	/**
	 * @param refundDailyQuota the refundDailyQuota to set
	 */
	public void setRefundDailyQuota(String refundDailyQuota) {
		this.refundDailyQuota = refundDailyQuota;
	}

	/**
	 * @return the svcAccept
	 */
	public String getSvcAccept() {
		return svcAccept;
	}

	/**
	 * @param svcAccept the svcAccept to set
	 */
	public void setSvcAccept(String svcAccept) {
		this.svcAccept = svcAccept;
	}

	/**
	 * @return the salesDailyQuota
	 */
	public String getSalesDailyQuota() {
		return salesDailyQuota;
	}

	/**
	 * @param salesDailyQuota the salesDailyQuota to set
	 */
	public void setSalesDailyQuota(String salesDailyQuota) {
		this.salesDailyQuota = salesDailyQuota;
	}

	/**
	 * @return the foreignCardSalesDailyQuota
	 */
	public String getForeignCardSalesDailyQuota() {
		return foreignCardSalesDailyQuota;
	}

	/**
	 * @param foreignCardSalesDailyQuota the foreignCardSalesDailyQuota to set
	 */
	public void setForeignCardSalesDailyQuota(String foreignCardSalesDailyQuota) {
		this.foreignCardSalesDailyQuota = foreignCardSalesDailyQuota;
	}

	/**
	 * @return the maxTxnAmt
	 */
	public String getMaxTxnAmt() {
		return maxTxnAmt;
	}

	/**
	 * @param maxTxnAmt the maxTxnAmt to set
	 */
	public void setMaxTxnAmt(String maxTxnAmt) {
		this.maxTxnAmt = maxTxnAmt;
	}

	/**
	 * @return the minTxnAmt
	 */
	public String getMinTxnAmt() {
		return minTxnAmt;
	}

	/**
	 * @param minTxnAmt the minTxnAmt to set
	 */
	public void setMinTxnAmt(String minTxnAmt) {
		this.minTxnAmt = minTxnAmt;
	}

	/**
	 * @return the needInvoice
	 */
	public String getNeedInvoice() {
		return needInvoice;
	}

	/**
	 * @param needInvoice the needInvoice to set
	 */
	public void setNeedInvoice(String needInvoice) {
		this.needInvoice = needInvoice;
	}

	/**
	 * @return the checkRefund
	 */
	public String getCheckRefund() {
		return checkRefund;
	}

	/**
	 * @param checkRefund the checkRefund to set
	 */
	public void setCheckRefund(String checkRefund) {
		this.checkRefund = checkRefund;
	}

	/**
	 * @return the needToken
	 */
	public String getNeedToken() {
		return needToken;
	}

	/**
	 * @param needToken the needToken to set
	 */
	public void setNeedToken(String needToken) {
		this.needToken = needToken;
	}

	/**
	 * @return the emailAddress
	 */
	public String getEmailAddress() {
		return emailAddress;
	}

	/**
	 * @param emailAddress the emailAddress to set
	 */
	public void setEmailAddress(String emailAddress) {
		this.emailAddress = emailAddress;
	}

	/**
	 * @return the attr51
	 */
	public String getAttr51() {
		return attr51;
	}

	/**
	 * @param attr51 the attr51 to set
	 */
	public void setAttr51(String attr51) {
		this.attr51 = attr51;
	}

	/**
	 * @return the attr52
	 */
	public String getAttr52() {
		return attr52;
	}

	/**
	 * @param attr52 the attr52 to set
	 */
	public void setAttr52(String attr52) {
		this.attr52 = attr52;
	}

	/**
	 * @return the attr54
	 */
	public String getAttr54() {
		return attr54;
	}

	/**
	 * @param attr54 the attr54 to set
	 */
	public void setAttr54(String attr54) {
		this.attr54 = attr54;
	}

	/**
	 * @return the attr56
	 */
	public String getAttr56() {
		return attr56;
	}

	/**
	 * @param attr56 the attr56 to set
	 */
	public void setAttr56(String attr56) {
		this.attr56 = attr56;
	}

	/**
	 * @return the attr58
	 */
	public String getAttr58() {
		return attr58;
	}

	/**
	 * @param attr58 the attr58 to set
	 */
	public void setAttr58(String attr58) {
		this.attr58 = attr58;
	}

	/**
	 * @return the attr510
	 */
	public String getAttr510() {
		return attr510;
	}

	/**
	 * @param attr510 the attr510 to set
	 */
	public void setAttr510(String attr510) {
		this.attr510 = attr510;
	}

	/**
	 * @return the attr512
	 */
	public String getAttr512() {
		return attr512;
	}

	/**
	 * @param attr512 the attr512 to set
	 */
	public void setAttr512(String attr512) {
		this.attr512 = attr512;
	}

	/**
	 * @return the attr513
	 */
	public String getAttr513() {
		return attr513;
	}

	/**
	 * @param attr513 the attr513 to set
	 */
	public void setAttr513(String attr513) {
		this.attr513 = attr513;
	}

	/**
	 * @return the attr7
	 */
	public String getAttr7() {
		return attr7;
	}

	/**
	 * @param attr7 the attr7 to set
	 */
	public void setAttr7(String attr7) {
		this.attr7 = attr7;
	}
	
	/**
	 * @return the clearingHouses
	 */
	public String getClearingHouses() {
		return clearingHouses;
	}

	/**
	 * @param clearingHouses the clearingHouses to set
	 */
	public void setClearingHouses(String clearingHouses) {
		this.clearingHouses = clearingHouses;
	}

	/**
	 * @return the settleMerchantIds
	 */
	public String getSettleMerchantIds() {
		return settleMerchantIds;
	}

	/**
	 * @param settleMerchantIds the settleMerchantIds to set
	 */
	public void setSettleMerchantIds(String settleMerchantIds) {
		this.settleMerchantIds = settleMerchantIds;
	}

	/**
	 * @return the acceptCardOrgs
	 */
	public String getAcceptCardOrgs() {
		return acceptCardOrgs;
	}

	/**
	 * @param acceptCardOrgs the acceptCardOrgs to set
	 */
	public void setAcceptCardOrgs(String acceptCardOrgs) {
		this.acceptCardOrgs = acceptCardOrgs;
	}

	/**
	 * @return the provinceCode
	 */
	public String getProvinceCode() {
		return provinceCode;
	}

	/**
	 * @param provinceCode the provinceCode to set
	 */
	public void setProvinceCode(String provinceCode) {
		this.provinceCode = provinceCode;
	}

	public String getAttr514() {
		return attr514;
	}

	public void setAttr514(String attr514) {
		this.attr514 = attr514;
	}

	public String getMerchantExchangeRates() {
		return merchantExchangeRates;
	}

	public void setMerchantExchangeRates(String merchantExchangeRates) {
		this.merchantExchangeRates = merchantExchangeRates;
	}

	/**
	 * @return the attr59
	 */
	public String getAttr59() {
		return attr59;
	}

	/**
	 * @param attr59 the attr59 to set
	 */
	public void setAttr59(String attr59) {
		this.attr59 = attr59;
	}

	/**
	 * @return the attr515
	 */
	public String getAttr515() {
		return attr515;
	}

	/**
	 * @param attr515 the attr515 to set
	 */
	public void setAttr515(String attr515) {
		this.attr515 = attr515;
	}

	/**
	 * @return the uniqueExternalTraceNo
	 */
	public String getUniqueExternalTraceNo() {
		return uniqueExternalTraceNo;
	}

	/**
	 * @param uniqueExternalTraceNo the uniqueExternalTraceNo to set
	 */
	public void setUniqueExternalTraceNo(String uniqueExternalTraceNo) {
		this.uniqueExternalTraceNo = uniqueExternalTraceNo;
	}

	/**
	 * @return the mobileProxyMaxTxnAmt
	 */
	public String getMobileProxyMaxTxnAmt() {
		return mobileProxyMaxTxnAmt;
	}

	/**
	 * @param mobileProxyMaxTxnAmt the mobileProxyMaxTxnAmt to set
	 */
	public void setMobileProxyMaxTxnAmt(String mobileProxyMaxTxnAmt) {
		this.mobileProxyMaxTxnAmt = mobileProxyMaxTxnAmt;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
	}
	
}
